export interface ThemeClassicProps {
  top: {
    backgroundColor: string
    backgroundImage: string
    textColor: string
    nav: {
      backgroundColor: string
      textColor: string
      activeBackgroundColor: string
      activeTextColor: string
    }
    user: {
      backgroundColor: string
      backgroundImage: string
    }
  }
  aside: {
    backgroundColor: string
    backgroundImage: string
    textColor: string
    menu: {
      main: {
        backgroundColor: string
        textColor: string
        activeBackgroundColor: string
        activeTextColor: string
      }
      secondary: {
        backgroundColor: string
        textColor: string
        activeBackgroundColor: string
        activeTextColor: string
      }
    }
  }
}
export interface ThemeVerticalProps {
  top: {
    backgroundColor: string
    backgroundImage: string
    textColor: string
    nav: {
      backgroundColor: string
      textColor: string
      activeBackgroundColor: string
      activeTextColor: string
    }
    user: {
      backgroundColor: string
      backgroundImage: string
    }
  }
  aside: {
    backgroundColor: string
    backgroundImage: string
    textColor: string
    menu: {
      main: {
        backgroundColor: string
        textColor: string
        activeBackgroundColor: string
        activeTextColor: string
      }
      secondary: {
        backgroundColor: string
        textColor: string
        activeBackgroundColor: string
        activeTextColor: string
      }
    }
  }
}
export interface ThemeTransverseProps {
  top: {
    backgroundColor: string
    backgroundImage: string
    textColor: string
    nav: {
      backgroundColor: string
      textColor: string
      activeBackgroundColor: string
      activeTextColor: string
    }
    user: {
      backgroundColor: string
      backgroundImage: string
    }
  }
  aside: {
    backgroundColor: string
    backgroundImage: string
    textColor: string
    menu: {
      main: {
        backgroundColor: string
        textColor: string
        activeBackgroundColor: string
        activeTextColor: string
      }
      secondary: {
        backgroundColor: string
        textColor: string
        activeBackgroundColor: string
        activeTextColor: string
      }
    }
  }
}
export interface ThemeColumnsProps {
  top: {
    backgroundColor: string
    backgroundImage: string
    textColor: string
    nav: {
      backgroundColor: string
      textColor: string
      activeBackgroundColor: string
      activeTextColor: string
    }
    user: {
      backgroundColor: string
      backgroundImage: string
    }
  }
  aside: {
    backgroundColor: string
    backgroundImage: string
    textColor: string
    menu: {
      main: {
        backgroundColor: string
        textColor: string
        activeBackgroundColor: string
        activeTextColor: string
      }
      secondary: {
        backgroundColor: string
        textColor: string
        activeBackgroundColor: string
        activeTextColor: string
      }
    }
  }
}

export interface ThemeProps {
  title: string
  name: string
  themeColor: string
  classic: ThemeClassicProps
  vertical: ThemeVerticalProps
  transverse: ThemeTransverseProps
  columns: ThemeColumnsProps
}

/* themeConfigProp */
export interface ThemeConfigProps {
  layout: 'vertical' | 'classic' | 'transverse' | 'columns'
  primary: string
  isDark: boolean
  isGrey: boolean
  isCollapse: boolean
  isWeak: boolean
  breadcrumb: boolean
  breadcrumbIcon: boolean
  tabs: boolean
  tabsIcon: boolean
  footer: boolean
  maximize: boolean
  size: '' | 'default' | 'small' | 'large'
  theme?: ThemeProps
}

/* ConfigState */
export interface ConfigState {
  show: boolean
  language: string
  themeConfig: ThemeConfigProps
  theme: ThemeProps
}

/* tabsMenuProps */
export interface TabsMenuProps {
  icon: string
  title: string
  path: string
  name: string
  close: boolean
  isKeepAlive: boolean
}

/* TabsState */
export interface TabsState {
  tabsMenuList: TabsMenuProps[]
}
